package com.atguigu.order.feign;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 定义了一个名为WeatherFeignClient的接口，用于通过Feign客户端的方式
 * 与提供天气信息的服务进行交互。该客户端特别指定为"weather-client"，
 * 并且目标服务的URL为"http://aliv18.data.moji.com"。
 */
@FeignClient(value = "weather-client", url = "http://aliv18.data.moji.com")
public interface WeatherFeignClient {

    /**
     * 通过POST请求获取指定城市的天气信息。
     *
     * @param auth 请求的认证信息，通过"Authorization"请求头传递。
     * @param token 请求的令牌，通过"token"查询参数传递，用于验证请求的合法性。
     * @param cityId 城市ID，通过"cityId"查询参数传递，指定需要查询天气信息的城市。
     * @return 返回包含天气信息的字符串响应。
     */
    @PostMapping("/whapi/json/alicityweather/condition")
    String getWeather(@RequestHeader("Authorization") String auth,
                      @RequestParam("token") String token,
                      @RequestParam("cityId") String cityId);
}
